博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
完成登录功能,用session记住用户名
阅读量:4611 次
发布时间:2019-06-09

本文共 3839 字,大约阅读时间需要 12 分钟。

登录功能完成:

  1. js:设置return
  2. html:设置
    1. form
    2. input
    3. οnclick="return fnLogin()"
  3. py:
    1. @app.route设置methods
    2. GET
    3. POST
      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:
          1. 提示相应错误。

session:

  1. 从`flask`中导入`session`
  2. 设置`SECRET_KEY`
  3. 操作字典一样操作`session`:增加用户名`session['username']=`username
    from flask import Flask,render_template,request,redirect,url_for,sessionfrom flask_sqlalchemy import SQLAlchemyimport configapp = Flask(__name__)app.config.from_object(config)db=SQLAlchemy(app)class User(db.Model):    __table__name = 'user'    id = db.Column(db.Integer,primary_key=True,autoincrement=True)    username = db.Column(db.String(20),nullable=False)    password = db.Column(db.String(20),nullable=False)    nickname = db.Column(db.String(50))db.create_all()@app.route('/')def index():    return render_template('index.html')@app.route('/regist/',methods=['GET','POST'])def regist():    if request.method=='GET':        return render_template('regist.html')    else:        username=request.form.get('username')        password=request.form.get('password')        nickname=request.form.get('nickname')        user=User.query.filter(User.username==username).first()        if user:            return u'username existed'        else:            user=User (username=username,password=password,nickname=nickname)            db.session.add(user)            db.session.commit()            return redirect(url_for('login'))@app.route('/login/',methods=['GET','POST'])def login():    if request.method=='GET':        return render_template('login.html')    else:        username=request.form.get('username')        password=request.form.get('password')        user = User.query.filter(User.username == username).first()        if user:            if user.password==password:                session['user']=username                return redirect(url_for('index'))            else:                return u'password error'        else:            return u'username is not existed'if __name__ == '__main__':    app.run(debug=True)
    import osSECRET_KEY = os.urandom(24)SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@localhost:3306/mis_db?charset=utf8'SQLALCHEMY_TRACK_MODIFICATIONS = False
    {% extends 'base.html' %}{% block title %}登录{% endblock %}{% block head %}    
    {% endblock %}{% block main %}
    Username:
    Password:
    {% endblock %}
    function myLogin(){            var uName=document.getElementById("name");            var uError=document.getElementById("error_box");            var upass = document.getElementById("password");            var isError=true;            uError.innerHTML = "
    " //uname if(uName.value.length>12 || uName.value.length<6){ uError.innerHTML="Username 6-12 bits"; isError=false; return isError; }else if((uName.value.charCodeAt(0)>=48)&& uName.value.charCodeAt(0)<=57){ uError.innerHTML="The first letter cannot be numeric"; isError=false; return isError; }else for(var i=0; i
    57)&&(uName.value.charCodeAt(i)<97 || uName.value.charCodeAt(i)>122 )){ uError.innerHTML = "only letter or number."; isNotError=false; return isError; } } if(upass.value.length>12 || upass.value.length<6){ uError.innerHTML="password 6-12 bits"; isError=false; return isError; } return isError; }

     

转载于:https://www.cnblogs.com/marsk/p/7879736.html

你可能感兴趣的文章
常用表单及控件测试用例检查点总结
查看>>
UVA5874 Social Holidaying 二分匹配
查看>>
网络流24题 餐巾计划(费用流)
查看>>
Codeforces Round #478 (Div. 2) D Ghosts 会超时的判断两个之间关系,可以用map
查看>>
Redis之Hash
查看>>
mysql 相關
查看>>
支持新版chrome,用webstorm编译形成css和sourcemap,调试sass和less源文件
查看>>
Climbing Stairs
查看>>
用来武装Firebug的十四款Firefox插件
查看>>
几种常用排序算法代码实现和基本优化(持续更新ing..)
查看>>
css样式之超出隐藏
查看>>
python-scrapy框架
查看>>
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
查看>>
Java解惑精炼版(一)
查看>>
无法获得锁 /var/lib/dpkg/lock - open
查看>>
自己写数据库访问ORM
查看>>
多项式填坑。。?
查看>>
webapi同一个Controller多个函数
查看>>
ASP.NET Web API身份验证和授权
查看>>
C#模拟POST提交表单(一)--WebClient
查看>>